package com.tt.lcd.qunyangGPRS.biz.activity.renshen;

import android.content.Context;
import android.util.Log;

import com.tt.lcd.qunyangGPRS.dao.renshen.XiaoqunyangDao;
import com.tt.lcd.qunyangGPRS.entity.DateShow;
import com.tt.lcd.qunyangGPRS.entity.JinSiData;
import com.tt.lcd.qunyangGPRS.entity.XiaoQunYnag;
import com.tt.lcd.qunyangGPRS.utils.Register;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

public class LogInfo {
	private Context mContext;
	public LogInfo(Context context){
		mContext=context;
	}
	//查询数据
	public void send() throws ParseException{
		ArrayList<XiaoQunYnag> yuan = new XiaoqunyangDao(mContext).selectAll();
		ArrayList<XiaoQunYnag> list = new ArrayList<XiaoQunYnag>();
		SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd");

		for (int i = 0; i < yuan.size(); i++) {
			if(new Date().getTime()-sdf.parse(yuan.get(i).getTime()).getTime()>24*60*60*1000){
				Log.e("ee", yuan.get(i).getTime());
				list.add(yuan.get(i));
			}

		}

		for (int i = 0; i < list.size(); i++) {
			Register.getRegister().server.send((byte) 0x32,list.get(i).getUid());
			new XiaoqunyangDao(mContext).updataLogSendTime(list.get(i).getUid(),sdf.format(new Date()));
		}
	}
	//加载数据
	public List<HashMap<String, Object>> getData() throws ParseException{
		List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();

		ArrayList<byte[]> list = new XiaoqunyangDao(mContext).select();


		ArrayList<JinSiData> jinList = new ArrayList<JinSiData>();
		for (int i = 0; i < list.size(); i++) {
			byte[] b = list.get(i);
			for (int i1 = 18; i1 < b.length; i1 = i1 + 24) {
				byte[] jin = new byte[] { b[i1 + 0], b[i1 + 1], b[i1 + 2],
						b[i1 + 3], b[i1 + 4], b[i1 + 5], b[i1 + 6], b[i1 + 7],
						b[i1 + 8], b[i1 + 9], b[i1 + 10], b[i1 + 11],
						b[i1 + 12], b[i1 + 13], b[i1 + 14], b[i1 + 15],
						b[i1 + 16], b[i1 + 17], b[i1 + 18], b[i1 + 19],
						b[i1 + 20], b[i1 + 21], b[i1 + 22], b[i1 + 23] };
				jinList.add(new JinSiData(jin,""+b[15] + "-" + b[16]));
			}
		}
		ArrayList<DateShow> show = new ArrayList<DateShow>();

//			ArrayList<Integer> zhan = new ArrayList<Integer>();
		for (int i = 0; i < jinList.size(); i++) {
			Date da = jinList.get(i).getDate();
			boolean bl = true;

			for (int j = 0; j < show.size(); j++) {
				if (show.get(j).getDate().equals(da)) {
					show.get(j).setPigs(show.get(j).getPigs() + 1);

					bl = false;
					break;
				}
			}
			if (bl) {
				DateShow ds = new DateShow();
				ds.setDate(da);
				ds.setPigs(1);
				ds.setZhanshu(1);
				show.add(ds);
			}
		}
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		for (int i = show.size()-1; i > -1; i--) {
			HashMap<String, Object> item = new HashMap<String, Object>();
			item.put("muzhu", show.get(i).getPigs());


			item.put("date", sdf.format(show.get(i).getDate()));

			ArrayList<String> zz = new ArrayList<String>();
			for (int j = 0; j < jinList.size(); j++) {
				if(show.get(i).getDate().equals(jinList.get(j).getDate())){
					boolean bb =true;
					for (int j2 = 0; j2 < zz.size(); j2++) {
						if(zz.get(j2).equals(jinList.get(j).getZhanID())){
							bb = false;
							break;
						}

					}

					if(bb){
						zz.add(jinList.get(j).getZhanID());
					}
				}

			}
			item.put("shuliang", zz.size());
			data.add(item);
		}

		HashMap<String, Object> temp;
		for(int i=0;i<data.size()-1;i++){
			for (int j = 0; j < data.size()-i-1; j++) {
				Date d1 = sdf.parse(data.get(j).get("date").toString());
				Date d2 = sdf.parse(data.get(j+1).get("date").toString());
				if (d1.getTime() < d2.getTime()) {
					temp = data.get(j);
					data.set(j,data.get(j+1));
					data.set(j+1, temp);
				}
			}
		}
		//补齐有一段时间没更新的情况
		List<HashMap<String, Object>> data2 = new ArrayList<HashMap<String, Object>>();
		if(data.size()!=0&&!data.get(0).get("date").toString().equals(sdf.format(new Date()))){
			Date dangtian = new Date();
			Date qian = sdf.parse(data.get(0).get("date").toString());

			//算出相差天数
			long l1 = dangtian.getTime();
			long l2 = qian.getTime();
			int tian = (int) ((l1-l2)/1000/60/60/24);

			tian = tian-1;
			Calendar calendar1 = Calendar.getInstance();
			calendar1.setTime(dangtian);

			for (int j = 0; j < tian; j++) {
				//如果不是连续补齐空白天数
				calendar1.set(Calendar.DAY_OF_MONTH,calendar1.get(Calendar.DAY_OF_MONTH)-1);//让日期加1

				HashMap<String, Object> item = new HashMap<String, Object>();
				item.put("muzhu","0");
				item.put("date", sdf.format(calendar1.getTime()));
				item.put("shuliang", "0");
				data2.add(item);
			}
		}

		//补齐中间空白的天数
		for (int i = 0; i < data.size(); i++) {
			data2.add(data.get(i));

//			if(i!=(data.size()-1)){  // 判断是不是最后一条数据，最后一条不处理
//				String date1 = data.get(i).get("date").toString();
//				String date2 = data.get(i+1).get("date").toString();
//				Date d1 = sdf.parse(date1);
//				Date d2 = sdf.parse(date2);
//
//				Calendar calendar2=Calendar.getInstance();
//				calendar2.setTime(d2);
//				calendar2.set(Calendar.DAY_OF_MONTH,calendar2.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
//				String temp1 = sdf.format(calendar2.getTime());
//				if(!temp1.equals(date1)){//判断两条记录日期是不是连续
//					calendar2.set(Calendar.DAY_OF_MONTH,calendar2.get(Calendar.DAY_OF_MONTH)-1);//让日期还原
//
//					//算出相差天数
//					long l1 = d1.getTime();
//					long l2 = d2.getTime();
//					int tian = (int) ((l1-l2)/1000/60/60/24);
//
//					tian = tian-1;
//					Calendar calendar1 = Calendar.getInstance();
//					calendar1.setTime(d1);
//					for (int j = 0; j < tian; j++) {
//						//如果不是连续补齐空白天数
//						calendar1.set(Calendar.DAY_OF_MONTH,calendar1.get(Calendar.DAY_OF_MONTH)-1);//让日期加1
//						
//						HashMap<String, Object> item = new HashMap<String, Object>();
//						item.put("muzhu",0);
//						item.put("date", sdf.format(calendar1.getTime()));
//						item.put("shuliang", 0);
//						data2.add(item);
//					}
//				}
//			}

		}

		return data2;
	}
}
